package com.shijimo.server.service;

import com.shijimo.server.domain.CourseContentFile;
import com.shijimo.server.domain.CourseContentFileExample;
import com.shijimo.server.dto.CourseContentFileDto;
import com.shijimo.server.mapper.CourseContentFileMapper;
import com.shijimo.server.util.CopyUtil;
import com.shijimo.server.util.UuidUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author Dream_飞翔
 * @email 1072876976@qq.com
 */

@Service
public class CourseContentFileService {
    @Resource
    private CourseContentFileMapper courseContentFileMapper;

    /**
     * 查询列表的方法
     *
     * @param courseId 课程ID
     */
    public List<CourseContentFileDto> list(String courseId) {
        CourseContentFileExample example = new CourseContentFileExample();
        // 创建查询对象
        CourseContentFileExample.Criteria criteria = example.createCriteria();
        // 定义查询条件
        criteria.andCourseIdEqualTo(courseId);
        // 进行列表查询
        List<CourseContentFile> fileList = courseContentFileMapper.selectByExample(example);
        return CopyUtil.copyList(fileList, CourseContentFileDto.class);
    }

    /**
     * 保存修改结果
     * 1. 如果从前端传来的对象中Id有值的话就是更新操作
     * 2. 如果Id为空则说明是进行新增操作
     *
     * @param courseContentFileDto
     */
    public void save(CourseContentFileDto courseContentFileDto) {
        CourseContentFile courseContentFile = CopyUtil.copy(courseContentFileDto, CourseContentFile.class);
        // 判断Id是否有值
        if (StringUtils.isEmpty(courseContentFileDto.getId())) {
            this.insert(courseContentFile);
        } else {
            this.update(courseContentFile);
        }
    }

    /**
     * 添加方法
     */
    private void insert(CourseContentFile courseContentFile) {
        // 设置Id
        courseContentFile.setId(UuidUtil.getShortUuid());
        courseContentFileMapper.insert(courseContentFile);
    }

    /**
     * 更新方法
     */
    private void update(CourseContentFile courseContentFile) {

        courseContentFileMapper.updateByPrimaryKey(courseContentFile);
    }

    /**
     * 删除方法
     */
    public void delete(String id) {
        courseContentFileMapper.deleteByPrimaryKey(id);
    }
}
